#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <dirent.h>

int main(int argc, char const *argv[])
{
    // 将标准输入设置为非阻塞
    int status = fcntl(STDIN_FILENO, F_GETFL);
    status |= O_NONBLOCK; // 添加指定属性
    fcntl(STDIN_FILENO, F_SETFL, status);

    // 非阻塞地从键盘获取一个字符
    int ch = getchar();
    if(ch != -1)
        printf("%c\n", ch);
    else
        perror("读取失败");

    // 将标准输入还原为阻塞状态
    status &= ~O_NONBLOCK; // 清除指定属性
    fcntl(STDIN_FILENO, F_SETFL, status);

    // 阻塞地从键盘获取一个字符
    ch = getchar();
    if(ch != -1)
        printf("%c\n", ch);
    else
        perror("读取失败");

    return 0;
}
